
import java.util.Scanner;

/**
*1. 编程题
*/
public class DateJudge{
	
 public static void main(String[] args){

        System.out.println("请输入年月日（格式为参照：20200507）");
        Scanner sc = new Scanner(System.in);
        String str ="";

        //获取输入信息，并判断长度是否为8，如果不为8，则提示重复输入
        boolean flag = true;

        while(flag){
            if(sc.hasNextLine()){
                str = sc.nextLine();
                if(str.length() != 8){
                    System.out.println("日期格式输入错误，请重新输入！（参照：20200705）");
                }else{
                    //判断输入内容是否为数字
                    for(int i =0;i< str.length();i++){
                        int chr = str.charAt(i);
                        if(chr>=48&&chr<=57){
                            flag = false;
                        }else {
                            System.out.println("日期输入，请重新输入（参照：20200705）！");
                            break;
                        }
                    }
                }
            }
        }

        //将输入信息转为数字
        int date = Integer.parseInt(str);

        //获取年月日

        int year = date/10000;
        int month = date%10000/100;
        int day = date%100;

        System.out.println("year:"+year+"\tmonth："+month+"\tday："+day);

        //判断是否为闰年
        boolean isLeapYear = false;
        if((year%100 == 0&&year%400==0 )||(year%100 != 0&&year%4==0 )){
            isLeapYear = true;
        }

        System.out.println("isLeapYear:"+isLeapYear);
        //1 3 5 7 8 10 12 	31天
        //2 闰年 29天 平年 	28天
        //4 5 9 11 30天
        int[] dateArray = {31,28,31,30,31,30,31,31,30,31,30,31};

        if (isLeapYear) {
            dateArray[1] = 29;
        }

        int daySum = 0;
        for (int i = 0; i < month-1  ; i++) {
            daySum += dateArray[i];
        }

        daySum += day;
        //计算这一天是这一年的第几天
        System.out.println("这一天是"+year+"年的第"+daySum+"天");

    }
	
}